// TODO - handle situations where title or sub-heading are breaking to next line

.g-timeline {
  align-content: space-between;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0 (-$site-gutter-padding);

  @media (min-width: 768px) {
    flex-direction: row;
    text-align: center;
  }

  &.no-intro {
    margin-top: -30px;

    @media (min-width: 768px) {
      margin-top: -90px;
    }

    @media (min-width: 992px) {
      margin-top: -116px;
    }
  }

  & > div {
    margin-left: 18px;
    padding: 40px $site-gutter-padding 0 42px;
    position: relative;

    @media (min-width: 768px) {
      margin-left: 0;
      padding-left: $site-gutter-padding;
      width: 50%;
    }

    &:last-child {
      .dot {
        border-color: #ca2171;
      }
    }

    .line {
      background-image: linear-gradient(180deg, #d2d4dc 50%, #c82070 100%);
      height: calc(100% - 12px);
      left: 8px;
      position: absolute;
      top: 45px;
      width: 2px;

      @media (min-width: 768px) {
        background-image: linear-gradient(
          90deg,
          rgba(229, 230, 235, 0),
          #d2d4dc 0%,
          #c82070 100%
        );
        height: 2px;
        left: 50%;
        top: 8px;
        width: calc(100% - 34px);
      }

      &:first-child {
        background-image: linear-gradient(
          180deg,
          rgba(229, 230, 235, 0) 5%,
          #dadce3 70%,
          #d2d4dc 100%
        );
        bottom: calc(100% - 45px);
        height: 60px;
        top: auto;

        @media (min-width: 768px) {
          background-image: linear-gradient(
            90deg,
            rgba(229, 230, 235, 0) 5%,
            #dadce3 26%,
            #d2d4dc 100%
          );
          height: 2px;
          left: auto;
          right: 50%;
          top: 8px;
          width: calc(50% + 120px);
        }
      }

      svg {
        position: absolute;
        top: calc(100% - 8px);
        transform: rotate(90deg);
        left: -4px;

        @media (min-width: 768px) {
          left: auto;
          right: -10px;
          top: -6px;
          transform: none;
        }
      }
    }

    h3 {
      margin: 0 0 8px;
    }

    .sub-heading {
      display: block;
      font-size: 1.6rem;
      margin-bottom: 24px;

      @media (min-width: 992px) {
        font-size: 1.8rem;
        margin-bottom: 40px;
      }
    }

    .dot {
      background: #f7f8fa;
      border: 2px solid #d2d4dc;
      border-radius: 50%;
      display: inline-block;
      height: 18px;
      left: 0;
      position: absolute;
      top: 45px;
      width: 18px;
      z-index: 1;

      @media (min-width: 768px) {
        margin: 0 0 0 -9px;
        left: 50%;
        top: 0;
      }
    }

    img {
      display: block;
      margin: 0 auto;
      max-width: 100%;
    }

    p {
      font-size: 1.6rem;
      margin-top: 40px;
    }
  }
}
